Microprocessors are used extensively in computer and electronic devices to process values and data. Values are often loaded in storage registers of the microprocessor to allow faster reading and writing of the values during processing such as execution of operations.
Some values are much more common in microprocessor operations. For example, zero is the most frequently occurring value in almost all computations performed by computers, including microprocessors. Not only does a zero value often result from computations, a zero value is often used to indicate or generate a negative result for comparisons or other operations. Other values are also usually quite common in microprocessor computations. For example, values such as one (1) (or negative one (−1)) are often used for incrementing or decrementing counters, for multipliers, or for other kinds of processing.
Most microprocessor architectures provide a few instructions to produce the value of zero in a register. Examples include moving a constant of zero into a register, or XORing a register with itself. Most microprocessors, however, do not take advantage of the commonality and high frequency of values such as zero and one to reduce power consumption when accessing the register and transmitting these kinds of values. For example, most microprocessors do not care whether a register holds, or is to hold, a common value such as zero. These microprocessors thus must consume power over all the bits of their main data buses in frequent reads and writes of common values from and to registers of a register file in the microprocessor. In addition, microprocessors ignore common values when performing a computation to produce a result from an operation involving a common value. For example, most microprocessors compute a common value result that could have been predicted, for example, in operations such as multiplying with zero. Since these kinds of common values and results frequently occur, significant power is unnecessarily consumed by the microprocessor in repetitive operations and transmissions involving these values.
Accordingly, what is needed is a method and system that provides reduced power consumption for operations of a microprocessor involving frequently occurring, common values. The present invention addresses such a need.